home *** CD-ROM | disk | FTP | other *** search
/ Ultra Gameplayers 101 / Ultra Game Players Magazine, No. 101 - September 1997 (Imagine Publishing, Inc.)(1997).iso / pc / new_ugp.dxr / 00202_Generic Menu Class.ls < prev    next >
Encoding:
Text File  |  1997-07-10  |  3.1 KB  |  117 lines

  1. property videoDisplay, imageDisplay, textDisplay, titleBar, demoButton, statusMember, statusMessage, killList, hotspotList, eventList
  2.  
  3. on new me, params
  4.   set killList to []
  5.   set eventList to []
  6.   set hotspotList to []
  7.   set videoDisplay to 0
  8.   set imageDisplay to 0
  9.   set textDisplay to 0
  10.   set titleBar to 0
  11.   set demoButton to 0
  12.   set statusMember to 0
  13.   if not voidp(params) then
  14.     set statusMessage to getaProp(params, #statusMessage)
  15.   end if
  16.   cursor(-1)
  17.   return me
  18. end
  19.  
  20. on CheckIdle me, currSprite, currLine
  21.   set setCursor to 0
  22.   set showMessage to 1
  23.   repeat with obj in hotspotList
  24.     if CheckRoll(obj, currSprite, currLine) then
  25.       set setCursor to IsClickable(obj)
  26.       if ShowedMessage(obj) then
  27.         set showMessage to 0
  28.       end if
  29.     end if
  30.   end repeat
  31.   if showMessage and not voidp(statusMessage) and (the number of member statusMember > 0) then
  32.     set the text of member statusMember to statusMessage
  33.   end if
  34.   repeat with obj in eventList
  35.     CheckIdle(obj)
  36.   end repeat
  37.   return setCursor
  38. end
  39.  
  40. on CheckMouseDowns me, currSprite, currLine
  41.   set destination to -1
  42.   repeat with obj in hotspotList
  43.     set myDest to CheckDown(obj, currSprite, currLine)
  44.     if myDest <> -1 then
  45.       set destination to myDest
  46.     end if
  47.   end repeat
  48.   return destination
  49. end
  50.  
  51. on NewVideoDisplay me, params
  52.   put "Generic Menu Class - NewVideoDisplay"
  53.   addProp(params, #spritenum, GetGlobal(#videosprite))
  54.   set videoDisplay to NewObject(me, "Video Display Class", params)
  55.   append(eventList, videoDisplay)
  56. end
  57.  
  58. on NewImageDisplay me
  59.   set imageDisplay to NewObject(me, "Image Display Class", [#spritenum: GetGlobal(#imageSprite)])
  60. end
  61.  
  62. on NewTextDisplay me, params
  63.   if voidp(params) then
  64.     set params to [#spritenum: GetGlobal(#textSprite)]
  65.   end if
  66.   if voidp(getaProp(params, #spritenum)) then
  67.     addProp(params, #spritenum, GetGlobal(#textSprite))
  68.   end if
  69.   set textDisplay to NewObject(me, "Text Display Class", params)
  70. end
  71.  
  72. on SetTitleBar me, params
  73.   set titleBar to getaProp(params, #titleBar)
  74.   if the number of member titleBar > 0 then
  75.     set the text of member titleBar to " "
  76.   end if
  77. end
  78.  
  79. on NewDemoButton me, params
  80.   set demoButton to NewObject(me, "Demo Button Class", params)
  81.   return demoButton
  82. end
  83.  
  84. on SetStatusMember me, params
  85.   set statusMember to getaProp(params, #statusMember)
  86. end
  87.  
  88. on NewEvent me, obj
  89.   append(the eventList of me, obj)
  90. end
  91.  
  92. on NewLauncher me, paramList
  93.   set newDemo to getaProp(paramList, #demo)
  94.   set newURL to getaProp(paramList, #url)
  95.   set spritenum to getProp(paramList, #spritenum)
  96.   set message to getaProp(paramList, #message)
  97.   set currMenu to the currMenu of GetGlobal(#gTitleObject)
  98.   set button to BasicButton(currMenu, [#hotSprites: [spritenum], #statusMessage: message])
  99.   set btnAction to NewObject(currMenu, "Demo Button Class", [#launchButton: spritenum])
  100.   init(btnAction, newDemo, newURL)
  101.   AddDown(button, btnAction)
  102. end
  103.  
  104. on dispose me
  105.   put "dispose generic Menu Class" && me
  106.   set eventList to []
  107.   set hotspotList to []
  108.   set videoDisplay to 0
  109.   set imageDisplay to 0
  110.   set textDisplay to 0
  111.   set titleBar to 0
  112.   set demoButton to 0
  113.   set statusMember to 0
  114.   ClearObjectList(killList)
  115.   set killList to []
  116. end
  117.